C 언어 삼항 연산자

IT 위키

C 언어 삼항 연산자(Ternary Operator in C, 三項演算子)는 조건식에 따라 두 가지 값 중 하나를 선택할 수 있게 하는 연산자로, if-else 문을 간결하게 표현하는 데 사용된다.

개요[편집 | 원본 편집]

삼항 연산자는 `조건식 ? 값1 : 값2`의 형태로 사용되며, 조건식이 참이면 값1을, 거짓이면 값2를 반환한다. 이는 연산자 중 유일하게 피연산자를 세 개 가지므로 "삼항" 연산자라 불린다.

문법[편집 | 원본 편집]

조건식 ? 참일   : 거짓일  ;

예:

int a = 5, b = 10;
int max = (a > b) ? a : b;  // max = 10

동작 원리[편집 | 원본 편집]

  • 조건식이 평가되어 참(0이 아닌 값)이면 `?` 뒤의 첫 번째 피연산자가 실행됨
  • 조건식이 거짓(0)이면 `:` 뒤의 두 번째 피연산자가 실행됨
  • 삼항 연산자는 값이 필요한 표현식 내부에서 많이 활용됨

예제[편집 | 원본 편집]

int a = 7, b = 3;
int min = (a < b) ? a : b;  // 결과: 3
printf("작은 값: %d\n", min);

또는, 함수나 조건에 따라 변수에 다른 값을 저장할 수도 있다:

char grade = (score >= 90) ? 'A' :
             (score >= 80) ? 'B' :
             (score >= 70) ? 'C' :
             (score >= 60) ? 'D' : 'F';

삼항 연산자와 if 문 비교[편집 | 원본 편집]

// if 문
if (a > b)
    max = a;
else
    max = b;

// 삼항 연산자
max = (a > b) ? a : b;

주의 사항[편집 | 원본 편집]

  • 중첩 삼항 연산자는 가독성을 해칠 수 있으므로 적절한 들여쓰기 필요
  • 실행되는 코드가 복잡한 경우에는 if 문을 사용하는 것이 바람직
  • 삼항 연산자 내부에서 부작용 있는 표현식을 남용하면 버그 유발 가능

관련 키워드[편집 | 원본 편집]

  • 조건식
  • if-else
  • 연산자 우선순위
  • 표현식

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Prentice Hall, 1988.
  • 한동윤, 명품 C 언어 프로젝트, 생능출판사, 2020.

각주[편집 | 원본 편집]